package ioDemo;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

/**
 * 对象流
 * 对象流是一对高级流,主要功能是负责将java对象与字节进行相互转换
 * 向一个java对象转换为一组可以存储或网络传输的字节的过程称为"对象序列化",反之则称为"对象反序列化"
 *
 * 对象输出流负责对象序列化
 * 对象输入流负责对象反序列化
 */
public class OOSDemo {
    public static void main(String[] args) throws IOException {

        //1.创建一个对象输出流fos，然后用一个高级输出流包装它(高级水管包装低级水管并接通数据源<高级水管功能强大>)
        //比如对象输出流具有对水过滤的功能，文件输出流不具备(所以需要给文件输出流外封装一个对象输出流)
        FileOutputStream fos = new FileOutputStream("person.obj");
        ObjectOutputStream oos = new ObjectOutputStream(fos);


        //2.用对象输出流写出一个Person对象
        String[]  hobby={"game"};
        Person person = new Person("zs",  1,  "男",  hobby );
        oos.writeObject(person);


        //3.关闭对象输出流fos
        oos.close();

    }
}














